import service from '../require/request';

/**
 * 用户权限信息查询参数接口
 */
export interface UserPermissionParams {
    /**
     * 用户ID
     */
    uid: string;

    /**
     * 页码
     */
    page: string | number;

    /**
     * 每页数量
     */
    limit: string | number;
}

/**
 * 用户权限信息接口
 */
export interface UserPermission {
    /**
     * 用户ID
     */
    uid: string;

    /**
     * 用户ID
     */
    user_id: string;

    /**
     * 权限ID
     */
    access_id: string;

    /**
     * 用户名称
     */
    user_name: string;

    /**
     * 权限名称
     */
    access_name: string;
}

/**
 * 用户权限信息响应接口
 */
export interface UserPermissionResponse {
    /**
     * 用户权限信息列表
     */
    detail: UserPermission[];

    /**
     * 总条数
     */
    total: number;
}

/**
 * 更新用户权限参数接口
 */
export interface UpdateUserPermissionParams {
    /**
     * 用户ID
     */
    uid: string;

    /**
     * 用户ID
     */
    user_id: string;

    /**
     * 权限ID
     */
    access_id: string;

    /**
     * 权限名称
     */
    access_name: string;
}

/**
 * 获取用户权限信息
 * @param params 查询参数
 * @returns Promise<UserPermissionResponse>
 */
export const getUserPermissions = async (params: UserPermissionParams): Promise<UserPermissionResponse> => {
    try {
        const response = await service.post<UserPermissionResponse, UserPermissionResponse>(
            '/b/sme/cdc/career/access/user_info/search',
            params
        );

        return response;
    } catch (error) {
        console.error('获取用户权限信息失败:', error);
        throw error;
    }
};

/**
 * 更新用户权限
 * @param params 更新参数
 * @returns Promise<any>
 */
export const updateUserPermission = async (params: UpdateUserPermissionParams): Promise<any> => {
    try {
        const response = await service.post<any, any>('/b/sme/cdc/career/access/user_info/update', params);

        return response;
    } catch (error) {
        console.error('更新用户权限失败:', error);
        throw error;
    }
};
